<%@ page language="java" contentType="text/json; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page trimDirectiveWhitespaces="true"%>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.SQLException" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page language="java" import="java.lang.*" %>
<%@ page import = "java.sql.SQLException" %>
<%@ page import = "com.seniorproject.aims.*" %>
<%@ page import = "java.util.List" %>
<%@page import="java.util.ArrayList"%>
<%@ page import = "java.util.Properties" %>
<%@ page import = "javax.servlet.ServletContext" %>
<%@ page import = "java.io.File" %>
<%@ page import = "java.io.InputStream" %>
<%@ page import = "org.codehaus.jackson.JsonGenerationException" %>
<%@ page import = "org.codehaus.jackson.map.JsonMappingException" %>
<%@ page import = "org.codehaus.jackson.map.ObjectMapper" %>
<%@ page import = "java.io.IOException" %>

<%
	
	//get session
	String strUser = String.valueOf(session.getAttribute("sUser"));
	HttpSession htp_session = request.getSession();
	
	// check session
		if (htp_session == null || htp_session.getAttribute("sUser") == null) {
		    // Forward the control to login.jsp if authentication fails or session expires
		    request.getRequestDispatcher("/login.jsp").forward(request,
		        response);
		}
		if(!"admin".equals(htp_session.getAttribute("sUser"))){%>
			<script>alert("This user dont have PERMISSION to access this zone.");</script>
			<meta HTTP-EQUIV="Refresh" CONTENT="0; URL=system_select.jsp"> 	
	<%}
	
	//get parameter
	System.out.println("@ admin search lecturer");////////////try//////////
	
	String sql_con = request.getParameter("sql_con");
	
	
	//set Database Connection
	String hostProps = "";
	String usernameProps  = "";
	String passwordProps  = "";
	String databaseProps = "";
	
	try {
		//get current path
		ServletContext servletContext = request.getSession().getServletContext();
		
		InputStream input = servletContext.getResourceAsStream("/properties/connectDB.properties");
		Properties props = new Properties();
		
		props.load(input);

		hostProps  = props.getProperty("host");
		usernameProps  = props.getProperty("username");
		passwordProps  = props.getProperty("password");
		databaseProps = props.getProperty("database");
	} catch (Exception e) { 
		out.println(e);  
	}
	
	// connect database
	Connection connect = null;		
	try {
		Class.forName("com.mysql.jdbc.Driver");
	
		connect =  DriverManager.getConnection("jdbc:mysql://" + hostProps  + "/" + databaseProps +
				"?user=" + usernameProps  + "&password=" + passwordProps + "&characterEncoding=tis620" );
	
		if(connect != null){
			System.out.println("Database Connect Sucesses.");
		} else {
			System.out.println("Database Connect Failed.");	
		}

	} catch (Exception e) {
		out.println(e.getMessage());
		e.printStackTrace();
	}
	
	/* get lecturer data from database */
	String json = "";
	ObjectMapper mapper = new ObjectMapper();
	List<Lecturer> lecturer = new ArrayList<Lecturer>();
	
	try {			   
		String sql = "SELECT distinct N.name_th, N.surname_th, D.department_name_th	"
				+ " , E.education_position_name, L.index "
				+ " FROM people P, full_name N, lecturer L, department D, education_position E"
				+ " WHERE P.index=N.index AND P.full_name_id=N.full_name_id AND P.index=L.index "
				+ " AND L.education_position_id=E.education_position_id "
				+ " AND L.department_id=D.department_id "+sql_con;
		
		System.out.println(sql);/////////////////try///////////////////////
		
		ResultSet rs =  connect.createStatement().executeQuery(sql);
		
		while(rs.next()) {
			Lecturer lec = new Lecturer();
			
			lec.setIndex(rs.getString("index"));
			lec.setNameTH(rs.getString("name_th"));
			lec.setSurnameTH(rs.getString("surname_th"));
			lec.setDepartment(rs.getString("department_name_th"));
			lec.setEducationPosition(rs.getString("education_position_name"));
	//		lec.setManagementPosition(rs.getString("management_position_name"));
			
			lecturer.add(lec);
			
		}
		
		
		try {
			json = mapper.writeValueAsString(lecturer); 
		} catch (JsonGenerationException ex) {
			ex.printStackTrace();
		} catch (JsonMappingException ex) {
			ex.printStackTrace();
		} catch (IOException ex) {
			ex.printStackTrace();
		}
		out.print(json);	
		
		System.out.println("Json :"+ json);
	} catch (SQLException e) {
		e.printStackTrace();
	}

	connect.close();
%>